import axios from "axios";
//手动创建一个axios实例
const service = axios.create({
  //给所有的请求都会自动带上/api
  baseURL: '/api', // api的base_url
  timeout: 5000 // 请求超时时间
});

import { useLoginStore } from "@/stores/LoginStore";
import { useRouter } from "vue-router";
// request拦截器
service.interceptors.request.use(
  config => {
    // 在发送请求之前做一些处理
    console.log('request拦截器...')
    //给所有的请求都添加token
    let loginStore = useLoginStore()
    //token存在的时候才需要在请求头信息中添加
    if(loginStore.loginToken){
        config.headers['Authorization'] = `${loginStore.loginToken}`
    }
    return config;
  },
  error => {
    // 处理请求错误
    console.log(error);
    return Promise.reject(error);
  }
);

const router = useRouter()
// response拦截器
service.interceptors.response.use(
  response => {
    // data是服务器返回的响应数据
    console.log('response拦截器...')
    return response;
  },
  error => {
    // 处理响应错误
    const { response } = error;
    console.log('err' + error);
    if(response.status == 403){
      localStorage.clear() // 清除本地存储的token
      router.push('/login'); // 跳转到登录页
    }
    return Promise.reject(error);
  }
);

export default service;